package zhongbo.java.air.dictionary.service;

import org.springframework.data.domain.Page;
import zhongbo.java.air.common.vo.PageVo;
import zhongbo.java.air.dictionary.model.AirAlertZone;

import java.util.List;

/**
 * 警戒区域配置表(AirAlertZone)表服务接口
 *
 * @author makejava
 * @since 2025-03-31 14:06:00
 */
public interface AirAlertZoneService<A> {

    /**
     * 通过ID查询单条数据
     *
     * @param entityId 主键
     * @return 实例对象
     */
//    AirAlertZone queryById(String id) throws Exception;
    AirAlertZone findOne(String entityId) throws Exception;


    PageVo<AirAlertZone> findPage(int page, int pageSize, String keyword, String fields, String oderByField, boolean orderByAsc);

    /**
     * 新增数据
     *
     * @param entity 实例对象
     * @return 实例对象
     */
//    AirAlertZone insert(AirAlertZone airAlertZone) throws Exception;
    AirAlertZone add(AirAlertZone entity) throws Exception;

    /**
     * 修改数据
     *
     * @param edit 实例对象
     * @return 实例对象
     */
//    AirAlertZone update(AirAlertZone airAlertZone) throws Exception;
    AirAlertZone edit(AirAlertZone edit) throws Exception;

    /**
     * 通过主键删除数据
     *
     * @param entityId 主键
     * @return 是否成功
     */
//    boolean deleteById(String id) throws Exception;
    boolean delete(String entityId) throws Exception;

    /**
     * 查询所有警戒区域数据
     *
     * @return 警戒区域列表
     */
    List<AirAlertZone> queryAll();

    /**
     * 获取警戒区域的多边形顶点坐标
     *
     * @param id 警戒区域ID
     * @return 多边形顶点坐标
     */
    String getCoordinates(String id);

    /**
     * 获取警戒区域的类型
     *
     * @param id 警戒区域ID
     * @return 警戒区域类型
     */
    String getType(String id);
}
